package com.example.papercut.service;

import com.example.papercut.entity.TemplateRating;
import java.util.List;

public interface TemplateRatingService {
    
    /**
     * 3.1: 提交或更新评分和评论
     * @param rating 评分实体，包含 user, papercut, ratingValue, reviewText
     */
    void submitOrUpdateRating(TemplateRating rating);

    /**
     * 3.1: 获取指定模板的所有评论
     */
    List<TemplateRating> getRatingsByPapercutId(Integer papercutId);

    /**
     * 1.3: 计算指定模板的平均评分
     */
    Double getAverageRating(Integer papercutId);

    // ✅ 新增方法
    /**
     * 3.2: 获取指定用户的所有评分和评论历史
     * @param userId 用户 ID
     * @return 用户的评分历史列表
     */
    List<TemplateRating> getRatingsByUserId(Integer userId); 
}